package manager;

import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;

import controller.AdministrationController;
import controller.CaisseController;
import controller.LoginController;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;

public class LoginManager {

	private Scene scene;

	public LoginManager(Scene scene) {
		this.scene = scene;
	}

	/**
	 * Méthode appelé lors de la déconnexion de l'user
	 */
	public void deconnexion() {
		afficherAuthentification();
	}

	public void afficherAuthentification() {
		try {
			FXMLLoader loader = new FXMLLoader(getClass().getResource("../frxml/Login.fxml"));
			scene.setRoot((Parent) loader.load());
			LoginController controller = loader.<LoginController> getController();
			controller.initManager(this);
 		} catch (IOException ex) {
			Logger.getLogger(LoginManager.class.getName()).log(Level.SEVERE,null, ex);
		}
	}

	public void afficherCaisse(String sessionID, String utilisateur) {
		try {
			FXMLLoader loader = new FXMLLoader(getClass().getResource(
					"../frxml/Caisse.fxml"));
			scene.setRoot((Parent) loader.load());
			CaisseController controller = loader
					.<CaisseController> getController();
			controller.initSessionID(this, sessionID, utilisateur);
		} catch (IOException ex) {
			Logger.getLogger(LoginManager.class.getName()).log(Level.SEVERE,
					null, ex);
		}
	}

	public void afficherConf(String sessionID, String utilisateur) {
		try {
			FXMLLoader loader = new FXMLLoader(getClass().getResource(
					"../frxml/Administration.fxml"));
			scene.setRoot((Parent) loader.load());
			AdministrationController controller = loader
					.<AdministrationController> getController();
			controller.initSessionID(this, sessionID, utilisateur);
		} catch (IOException ex) {
			Logger.getLogger(LoginManager.class.getName()).log(Level.SEVERE,
					null, ex);
		}
	}
}